using System;
using System.Data;
using Csla;
using Csla.Data;
using Microsoft.Practices.ServiceLocation;
using Utpl.Syllabus.Reconocimiento.BL;
using Utpl.Syllabus.Reconocimiento.DAL;
using Utpl.Syllabus.Framework.Dal;
using Utpl.Syllabus.Infraestructure.DalAdo;

namespace Utpl.Syllabus.Reconocimiento.DalAdo
{
    /// <summary>
    /// Estereotipo: Dao 
    /// Responsabilidad: Persistencia para la entidad : variacion_componente
    /// </summary> 
    public class EstadoRegistroAcademicoDao : GenericDaoBase
    {
        #region Constructor

        /// <summary>
        /// Constructor: Inicializa los nombres de los procedimientos almacenados necesarios 
        /// durante el proceso de CRUD de variacion_componente
        /// </summary>
        /// <param name="db"></param>
        public EstadoRegistroAcademicoDao(IDatabase db)
            : base(ServiceLocator.Current.GetInstance<IDatabase>(Constantes.CONEXION_SIS_RECONOCIMIENTO))
        {
            InsertSession = false;
            
            SetParameterPrefix("etr_");
            RegisterQuery<SingleCriteria<EstadoRegistroAcademicoList, int>>(Constantes.PRC_OBT_ESTADOS_REA);
        }

        #endregion

        #region Criteria
        protected void AddCriteriaParameters(SingleCriteria<EstadoRegistroAcademicoList, int> criteria, IDbCommand comando)
        {
            
        }
        
        #endregion

        #region Entidad
        
        /// <summary>
        ///  Setea las propiedades  de nuestro objeto de negocio variacion_componente con los valores obtenidos de la DB
        ///  al momento de Obtener un/a variacion_componente
        /// </summary>
        /// <param name="sdr"></param>
        /// <param name="item"></param>
        private void LoadFields(SafeDataReader sdr, EstadoRegistroAcademicoInfo item)
        {
            item.EstadoNombre = sdr.GetString("etr_nombre");
            item.Codigo = sdr.GetString("etr_codigo");
        }

        
        #endregion
    }
}